package cn.tedu.test.luban.starter;

import cn.tedu.test.luban.starter.bean.Bean01;
import cn.tedu.test.luban.starter.bean.Bean02;
import cn.tedu.test.luban.starter.config.MyConfiguration01;
import org.junit.Test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.io.support.SpringFactoriesLoader;

import java.util.List;

public class RunSpring {
    /**
     * 通过spring的api方法,加载当前代码中唯一的一个配置类
     */
    @Test
    public void loadConfiguration(){
        //注解配置类的 应用上下文.
        AnnotationConfigApplicationContext context=
                new AnnotationConfigApplicationContext(
                        MyConfiguration01.class);
    }
    /**
     * 使用SpringFactories工具 加载一下当前系统的所有spring.factroies文件
     */
    @Test
    public void loadAutoConfigures(){
        //第一个参数: 文件中的key值 就是一个类的反射对象
        //第二个参数: 当前类加载器
        List<String> configures = SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,
                RunSpring.class.getClassLoader());
        System.out.println(configures.size());
    }
}
